/**
 * 
 */
package co.com.unmasters.pokerbot.core;

import java.util.ArrayList;

import co.com.unmasters.pokerbot.core.Dealer.Juego;


/**
 * @author Administrador
 *
 */
public class JuegoActual {
    Juego juego;
    int puntajeTotal;
    ArrayList<Carta> cartasJuego;
    ArrayList<Carta> cartasAcompanantes;

    /**
     * @param juego
     * @param cartasJuego
     */
    public JuegoActual(Juego juego, ArrayList<Carta> cartasJuego) {
        super();
        this.juego = juego;
        this.cartasJuego = cartasJuego;
    }

    /**
     * @return the juego
     */
    public Juego getJuego() {
        return juego;
    }
    
    /**
     * @param juego the juego to set
     */
    public void setJuego(Juego juego) {
        this.juego = juego;
    }
    
    /**
     * @return the puntajeTotal
     */
    public int getPuntajeTotal() {
        if (juego == Juego.carta_alta_principal){
            int numero = (cartasJuego.get(0).getNumero()==0?14:cartasJuego.get(0).getNumero());
            return (numero+1) * Dealer.PUNTOS_CARTA_JUEGO;
        }else{
            // Puntos por JUEGO
            int puntaje = (juego.ordinal()+1) * Dealer.PUNTOS_JUEGO;
            
            // Puntos por Carta de Juego
            ArrayList<Carta> cartaAlta = Dealer.cartaAlta(cartasJuego);
            
            if (cartaAlta!=null && cartaAlta.size()>0){
                int numero = (cartaAlta.get(0).getNumero()==0?14:cartaAlta.get(0).getNumero());
                puntaje += (numero+1)*Dealer.PUNTOS_CARTA_JUEGO;    
            }
            
            return puntaje;     
        }
    }
    
    /**
     * @return the cartasJuego
     */
    public ArrayList<Carta> getCartasJuego() {
        return cartasJuego;
    }
    
    public String getCartasJuegoAsString(){
        String string = "";
        
        for (Carta carta : cartasJuego) {
            string += (string.length()>0?"-":"") + carta.toString();
        }
        
        return string;
    }
    
    /**
     * @return the cartasAcompanantes
     */
    public ArrayList<Carta> getCartasAcompanantes() {
        return cartasAcompanantes;
    }    
}